package com.flow.asyncflow.core.entity.autooperation;

import lombok.Data;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 自动化操作上下文
 */
@Data
public class AutoOperationContext {
    /**
     * 批次号
     */
    private String batchNumber;
    /**
     * 办理人
     */
    private String handledBy;
    /**
     * 护照号
     */
    private String passportNo;

    /**
     * 操作人
     */
    private String operator;

    /**
     * 操作人账号
     */
    private String operatorAccount;

    /**
     * 国家
     */
    private String country;
    /**
     * 国家Id
     */
    private String countryId;

    /**
     * Playwright浏览器配置信息
     */
    private PlaywrightInfo playwrightInfo = new PlaywrightInfo();

    @Data
    public static class PlaywrightInfo {
        /**
         * 是否无头模式
         */
        private boolean headless = false;
        /**
         * 页面超时时间【毫秒】
         */
        private double timeOut = 30000;
        /**
         * 代理信息
         */
        private  ProxyInfo proxyInfo;
    }

    /**
     * 本次自动操作的所有cookie
     */
    private List<Cookie> cookieList = new ArrayList<>();

    @Data
    public static class Cookie {
        /**
         * 名称
         */
        private String name;
        /**
         * 值
         */
        private String value;
        /**
         * 路径
         */
        private String path;
        /**
         * 域
         */
        private String domain;
    }
    @Data
    public static   class ProxyInfo {
        /**
         * 地址
         */
        private String hostName;
        /**
         * 端口号
         */
        private int port;
        /**
         * 用户名
         */
        private String userName;
        /**
         * 密码
         */
        private String passWord;
    }
}
